:root {
  --first-color: #2563eb;
  --gradient-header: linear-gradient(
    90deg,
    rgba(230, 247, 247, 1) 0%,
    rgba(115, 183, 217, 1) 40%,
    rgba(30, 93, 133, 1) 100%
  );
  --navLink-color: linear-gradient(
    45deg,
    rgb(255, 255, 255) 0%,
    rgb(221, 228, 232) 50%,
    rgb(208, 236, 254) 100%
  );
  --dditem-color: linear-gradient(
    180deg,
    rgb(56, 71, 97) 0%,
    rgb(27, 33, 37) 50%,
    rgb(51, 81, 97) 100%
  );
  --gradient-topbar: linear-gradient(
    90deg,
    rgb(24, 37, 37) 0%,
    rgb(31, 46, 53) 50%,
    rgb(41, 63, 76) 100%
  );
  --mobile-gradient: linear-gradient(
    90deg,
    rgba(200, 230, 247, 1) 0%,
    rgb(213, 219, 224) 40%,
    rgb(207, 217, 225) 100%
  );
  --title-color: hsl(220, 48%, 28%);
  --body-color: hsl(220, 100%, 99%);
}
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
body {
  font-family: "Lexend Deca", sans-serif;
  background-color: var(--body-color);
}
.fixed-header {
  position: sticky;
  top: 0;
  z-index: 2000;
}
/* Topbar */
.top-bar {
  background: #2b5262;
  color: #fff;
  padding: 0.5rem 1rem;
  font-size: 0.95rem;
}
.top-bar .btn {
  background: var(--first-color);
  color: #fff;
  border: none;
  font-weight: 600;
  transition: transform 0.3s ease, background 0.3s ease;
}
.top-bar .btn:hover {
  background: #1e4bb8;
  transform: scale(1.05);
}
.top-bar .social-links a {
  color: #fff;
  margin-left: 0.75rem;
  font-size: 1rem;
  transition: transform 0.3s ease, color 0.3s ease;
}
.top-bar .social-links a:hover {
  transform: scale(1.1);
  color: var(--first-color);
}
/* Navbar */
.navbar-custom {
  max-height: 100px;
  background: var(--gradient-header);
  padding: 0;
}
.navbar-custom .nav-link {
  background: var(--navLink-color);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  font-weight: 800;
  display: flex;
  align-items: center;
  gap: 0.7rem;
  transition: transform 0.2s ease;
}
.navbar-custom .nav-link:hover {
  transform: translateX(5px);
}
.logo {
  width: 85px;
}
.logo img {
  object-fit: contain;
}
/* Mega Menu */
.dropdown-menu.mega-menu {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  width: 100vw;
  background: #bbdfec;
  border: none;
  padding: 1.5rem 0;
  display: none;
  z-index: 1500;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}
.dropdown:hover > .dropdown-menu.mega-menu,
.dropdown-menu.mega-menu.show {
  display: block !important;
  opacity: 1;
  visibility: visible;
}
.mega-menu .container-fluid {
  max-width: 1200px;
}
.mega-menu .row > div {
  padding: 0 1rem;
}
.mega-menu .dropdown-header {
  font-size: 1.55rem;
  font-family: "Lexend Deca", sans-serif;
  font-weight: 600;
  background: var(--dditem-color);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  margin-bottom: -0.8rem;
  text-align: left;
}
.mega-menu .dropdown-item {
  color: #202223;
  padding: 0.3rem 0;
  font-size: 0.95rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  background: transparent;
  transition: color 0.2s ease, transform 0.2s ease;
}
.mega-menu .dropdown-item:hover {
  color: #0348af;
  text-decoration: underline;
  background: transparent;
  transform: translateX(8px);
}
/* Inner Dropdown */
.custom-inner-dropdown {
  background: #d6f0fa;
  border: none;
  padding: 0.8rem;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
  transition: opacity 0.3s ease;
  margin-top: 0.5rem;
}
.custom-inner-dropdown.show,
.dropdown:hover > .custom-inner-dropdown {
  display: block !important;
  opacity: 1;
}
.custom-inner-dropdown .dropdown-item {
  background: transparent !important;
  color: #202223;
  padding: 0.4rem 0.8rem;
  font-size: 0.9rem;
  transition: color 0.2s ease, transform 0.2s ease;
}
.custom-inner-dropdown .dropdown-item:hover {
  background: transparent !important;
  color: #0348af;
  text-decoration: underline;
  transform: translateX(5px);
}
.custom-inner-dropdown .fs-5 {
  color: #202223;
  font-weight: 600;
  text-align: center;
  margin-bottom: 0.5rem;
}
/* Prevent layout shift */
.navbar-custom .dropdown {
  overflow: visible;
}
.navbar-custom .navbar-collapse {
  background: var(--gradient-header);
  max-height: 80vh;
  overflow-y: scroll;
}
.navbar-custom .navbar-collapse::-webkit-scrollbar {
  display: none;
}
/* Mobile and Tablet */
@media (max-width: 991.98px) {
  .navbar-custom {
    padding: 0.5rem 1rem;

    /* background: var(--gradient-header); */
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
  }
  .navbar-custom .navbar-collapse {
    display: none;
  }
  .navbar-custom .navbar-collapse.show {
    display: block;
    width: 100%;
    padding: 1rem;
    /* background: var(--mobile-gradient); */
  }
  .navbar-custom .nav-link {
    color: #2b5262;
    background: none;
    -webkit-text-fill-color: initial;
    font-size: 0.9rem;
    font-weight: 400;
    gap: 0.25rem;
    padding: 0.5rem 1rem;
  }
  .dropdown-menu.mega-menu {
    background-color: #bbdfec;
    position: static;

    transform: none;
    width: 100%;

    padding: 1rem;

    border-radius: 8px;
  }
  .mega-menu .container-fluid {
   background: var(--mobile-gradient);
  }
  .custom-inner-dropdown {
    width: 100%;

    background: #e9f0f3;
    padding-inline: auto;
    box-shadow: none;
    margin-top: 0;
  }
  .mega-menu .dropdown-header {
    font-size: 1.2rem;
    font-weight: 500;
  }
  .mega-menu .dropdown-item:hover {
    font-size: 1rem;
    font-weight: 600;
  }
  .mega-menu .dropdown-item {
    font-size: 0.85rem;
    font-weight: 400;
  }
  .navbar-custom .dropdown-toggle::after {
    display: none;
  }
  .logo {
    width: 80px;
  }
  .top-bar {
    font-size: 0.9rem;
    padding: 0.5rem 0.5rem;
  }
  .top-bar .btn {
    font-size: smaller;
  }
}
/* Mobile: Adjust layout for screens 767.98px and below */
@media (max-width: 767.98px) {
  .logo {
    width: 60px;
  }
  .top-bar {
    font-size: 0.8rem;
    padding: 0.3rem 0.5rem;
  }
  .top-bar .btn {
    font-size: small;
    padding: 0.3rem;
  }
  .navbar-custom {
    padding: 0.3rem 0;
  }
  .navbar-custom .nav-link {
    font-size: 0.85rem;
  }
  .mega-menu .dropdown-header {
    font-size: 1rem;
  }
  .mega-menu .dropdown-item {
    font-size: 0.8rem;
  }
}
/* Extra Small Devices: Adjust for screens 575.98px and below */
@media (max-width: 575.98px) {
  .logo {
    width: 40px;
  }
  .top-bar {
    font-size: 0.75rem;
    padding: 0.2rem 0.3rem;
  }
  .navbar-custom .nav-link {
    font-size: 0.8rem;
  }
}
/* Heartbeat animation for Quote button */
@keyframes heartbeat {
  0% {
    transform: scale(1);
  }
  14% {
    transform: scale(1.3);
  }
  28% {
    transform: scale(1);
  }
  42% {
    transform: scale(1.3);
  }
  70% {
    transform: scale(1);
  }
}
.heartbeat {
  animation: heartbeat 1.5s ease-in-out infinite;
  transform-origin: center;
}
